package cn.buk.api.ctrip.dto.share;

import javax.xml.bind.annotation.*;

/**
 * Created by yfdai on 16/1/16.
 */
@XmlSeeAlso({
        IntlOwFareInfo.class
})
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="RtFareInfo", propOrder =
        {"fareId", "policyId",  "productType",  "isApplication",  "stockType",  "owner",  "isAirport", "departCity",
                "arriveCity", "routing", "routingClass", "fareBasis", "forbiddenFlight",  "flight",
                "isAllowCombination", "combinablePolicyId", "isAllowOpenJaw", "openJawType", "combinableOjPolicyNumber",
                "isAllowStopoverOutbound", "isAllowStopoverInbound", "outboundDayTime", "outboundDayTimeIndicator",
                "inboundDayTime", "inboundDayTimeIndicator", "puOutboundTravelDate", "puOutboundTravelDateIndicator",
                "fcOutboundTravelDate", "outboundTravelDateExcept", "fcOutboundTravelDateIndicator", "fcInboundTravelDate",
                "inboundTravelDateExcept", "fcInboundTravelDateIndicator", "salesDate",  "eligibility", "minStay", "maxStay",
                "minPax",  "maxPax", "fareType", "ticketType", "salesPrice", "currency", "adultTax", "chdDiscoundRate",
                "chdTax", "infantRate", "infantTax", "commission", "profit",  "commissionCalculation",  "ticketingDeadline",
                "isNeedPnr", "invoiceType", "nationality", "excludeNationality", "age", "isOutboundChangeable",
                "outboundRebookingFee", "outboundRebookingCurrency", "isInboundChangeable",  "inboundRebookingFee",
                "inboundRebookingCurrency", "isRefundable",  "cancellationFee", "cancellationCurrency",
                "isPartlyUsedRefundable", "partlyUsedRefundFee", "partlyUsedRefundCurrency", "noshow",
                "isNoshowRevalidation",  "revNoshowCondition",  "revNoshowOutFee", "revNoshowOutCurrency",
                "revNoshowInFee", "revNoshowInCurrency", "isNoshowRefund", "refNoshowCondition", "refNoshowFee",
                "refNoshowCurrency", "refNoshowPartlyFee", "refNoshowPartlyCurrency", "yourOfficeNO", "ticketingRemark",
                "workingTime", "outboundBaggage", "inboundBaggage", "isOther", "agentID"}
)
public class IntlRtFareInfo extends IntlBaseFareInfo {

    public void setAttrValue(final int col, final String val) {
        switch(col){//通过列数来判断对应插如的字段
            case 0 : this.policyId = val; break;
            case 1 : this.productType = ProductType.fromShowName(val).getIndex();break;
            case 2 : this.isApplication = val.equalsIgnoreCase("是")? 1: 0 ; break;
            case 3 : this.stockType = val.equalsIgnoreCase("定额")? 1: 0 ; break;
            case 4 : this.owner = val; break;
            case 5 : this.isAirport = val.equalsIgnoreCase("机场码")? 1: 0 ; break;
            case 6 : this.departCity = val; break;
            case 7 : this.arriveCity = val; break;
            case 8 : this.isOther = val.equalsIgnoreCase("是")? 1: 0 ; break;
            case 9 : this.routing = val; break;
            case 10 : this.routingClass = val; break;
            case 11 : this.fareBasis = val; break;
            case 12 : this.flight = val; break;
            case 13 : this.forbiddenFlight = val; break;
            case 14 : this.isAllowCombination = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 15 : this.combinablePolicyId = val; break;
            case 16 : this.isAllowOpenJaw = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 17 : this.openJawType = parseOpenJawType(val); break;
            case 18 : this.combinableOjPolicyNumber = val; break;
            case 19 : this.isAllowStopoverOutbound = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 20 : this.isAllowStopoverInbound = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 21 : this.outboundDayTime = val; break;
            case 22 : this.outboundDayTimeIndicator = getOutboundDayTimeIndicatorVal(val); break;
            case 23 : this.inboundDayTime = val; break;
            case 24 : this.inboundDayTimeIndicator = getOutboundDayTimeIndicatorVal(val); break;
            case 25 : this.puOutboundTravelDate = val; break;
            case 26 : this.puOutboundTravelDateIndicator = getOutboundDayTimeIndicatorVal(val); break;
            case 27 : this.fcOutboundTravelDate = val; break;
            case 28 : this.outboundTravelDateExcept = val; break;
            case 29 : this.fcOutboundTravelDateIndicator = getOutboundDayTimeIndicatorVal(val); break;
            case 30 : this.fcInboundTravelDate = val; break;
            case 31 : this.inboundTravelDateExcept = val; break;
            case 32 : this.fcInboundTravelDateIndicator = getOutboundDayTimeIndicatorVal(val); break;
            case 33 : this.salesDate = val; break;
            case 34 : this.eligibility = getEligibilityType(val); break;
            case 35 : this.minStay = val; break;
            case 36 : this.maxStay = val; break;
            case 37 : this.minPax = parseInt(val); break;
            case 38 : this.maxPax = parseInt(val); break;
            case 39 : this.fareType = val; break;
            case 40 : this.ticketType = val.equalsIgnoreCase("BSP电子票") ? 1: 2; break;
            case 41 : this.salesPrice = parseInt(val); break;
            case 42 : this.currency = val; break;
            case 43 : this.adultTax = parseInt(val); break;
            case 44 : this.chdDiscoundRate = val; break;
            case 45 : this.chdTax = parseInt(val); break;
            case 46 : this.infantRate = val; break;
            case 47 : this.infantTax = parseInt(val); break;
            case 48 : this.commission = Float.parseFloat(val); break;
            case 49 : this.profit = parseInt(val); break;
            case 50 : this.commissionCalculation = val.equalsIgnoreCase("取严") ? 1: 2; break;
            case 51 : this.ticketingDeadline = val; break;
            case 52 : this.isNeedPnr = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 53 : this.invoiceType = val.equalsIgnoreCase("行程单") ? 1 : 0; break;
            case 54 : this.nationality = val; break;
            case 55 : this.excludeNationality = val; break;
            case 56 : this.age = val; break;
            case 57 : this.isOutboundChangeable = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 58 : this.outboundRebookingFee = val; break;
            case 59 : this.outboundRebookingCurrency = val; break;
            case 60 : this.isInboundChangeable = val.equalsIgnoreCase("是") ? 1 : 0; break;
            case 61 : this.inboundRebookingFee = val; break;
            case 62 : this.inboundRebookingCurrency = val; break;

            case 63 : this.isRefundable = val.equalsIgnoreCase("是")?1:0; break;
            case 64 : this.cancellationFee = val; break;
            case 65 : this.cancellationCurrency = val; break;
            case 66 : this.isPartlyUsedRefundable = val.equalsIgnoreCase("是")?1:0; break;
            case 67 : this.partlyUsedRefundFee = val; break;
            case 68 : this.partlyUsedRefundCurrency = val; break;

            case 69 : this.noshow = val; break;
            case 70 : this.isNoshowRevalidation = val.equalsIgnoreCase("是")?1:0; break;
            case 71 : this.revNoshowCondition = val; break;
            case 72 : this.revNoshowOutFee = val; break;
            case 73 : this.revNoshowOutCurrency = val; break;
            case 74 : this.revNoshowInFee = val; break;
            case 75 : this.revNoshowInCurrency = val; break;

            case 76 : this.isNoshowRefund = val.equalsIgnoreCase("是")?1:0; break;
            case 77 : this.refNoshowCondition = val; break;
            case 78 : this.refNoshowFee = val; break;
            case 79 : this.refNoshowCurrency = val; break;
            case 80 : this.refNoshowPartlyFee = val; break;
            case 81 : this.refNoshowPartlyCurrency = val; break;

            case 82 : this.yourOfficeNO = val; break;
            case 83 : this.ticketingRemark = val; break;
            case 84 : this.workingTime = val; break;
            case 85 : this.outboundBaggage = val; break;
            case 86 : this.inboundBaggage = val; break;
        }
    }

    //********** same as IntlOwFareInfo begin********************
    @XmlAttribute(name = "FareId")
    private String fareId = "";

    @XmlAttribute(name = "PolicyId")
    private String policyId;

    //产品类型	ProductType	tinyint	单选（1：申请、2：包机切位、、3：直销、4：清仓产品、6：特惠）请录入1、2、3、4、6，单选
    @XmlAttribute(name = "ProductType")
    private int productType = 1;

    //显示申请	IsApplication	bit	单选（0：否  1：是） 请录入0或1
    @XmlAttribute(name = "IsApplication")
    private int isApplication;

    //库存模式	StockType	tinyint	单选（0：见舱、1：定额），请录入0或1
    @XmlAttribute(name = "StockType")
    private int stockType;

    //开票航空公司	Owner	char(2)	航空公司二字代码  要做是否存在check
    @XmlAttribute(name = "Owner")
    private String owner;

    //    航路录入方式	IsAirport	bit	单选（0:城市码     1:机场码），请录入0或1，此字段决定出发地，目的地是否可录入机场码
    @XmlAttribute(name = "IsAirport")
    private int isAirport;

    //DepartCity="SHA"  出发地	DepartCity	varchar(400)	城市三字代码/机场三字码,允许录入多个可用/隔开表示或的关系
    @XmlAttribute(name = "DepartCity")
    private String departCity;

    //ArriveCity="NYC/AMS/AGW"  目的地	ArriveCity	varchar(400)	城市三字代码/机场三字码,允许录入多个可用/隔开表示或的关系
    @XmlAttribute(name = "ArriveCity")
    private String arriveCity;

    //    航路	Routing	varchar(300)	"格式1：城市代码-销售航司-城市代码
//    格式2：城市代码-销售航司-城市代码-销售航司-城市代码
//            航路的首尾必须和出发到达城市一致
//    PS：无需录入完整航路，如果航路录入方式选择1则录入机场码"
    //Routing="SHA-MU-AAF/SIN/BZL/TIA/ADL/ADO-CA-NYC/AMS/AGW"
    @XmlAttribute(name = "Routing")
    private String routing;

    //    舱位	RoutingClass	varchar(100)	"舱位代码 ：  直飞航路只允许录入一个舱位 ；转机航路当每段的预订舱位不同时用-隔开，如Y-B;
//    当两段的舱位一致时只需录入一个，如Y-Y只需录入Y即可  ；  舱位之间不可用/隔开"
    //RoutingClass="L"
    @XmlAttribute(name = "RoutingClass")
    private String routingClass;

    //票价基础	FareBasis	varchar(10)	只允许录入一个
    //FareBasis="ZH3APCN123"
    @XmlAttribute(name = "FareBasis")
    private String fareBasis;

    //    可售航班	Flight	varchar(300)	"航班限制表达格式：
//            1 CA001-999,CA3000-3999  表示CA001至999以及3000至3999之间航班号的航班
//    2 MU  表示所有MU开头的航班
//    3 CA(LH\AZ) 表示CA开头的实际承运人为LH或AZ的航班
//    4 CA(*)   表示CA代码共享航班/CA开头的实际承运人为其他航空公司的航班
//    5 CA(CA)   表示CA自营航班/CA实际承运航班；
//            6 CA(OZ)001-999 表示CA开头航班号为001-999之间且实际承运人为OZ的航班；
//            7 为空表示无限制，多程用/分割"
    //Flight="MU,CX/MU123，MU456，CA123，MU123，MU(CZ)001-999"
    @XmlAttribute(name = "Flight")
    private String flight;

    //    禁售航班	ForbiddenFlight	varchar(300)	"航班限制表达格式：
//            1 CA001-999,CA3000-3999  表示CA001至999以及3000至3999之间航班号的航班
//    2 MU  表示所有MU开头的航班
//    3 CA(LH\AZ) 表示CA开头的实际承运人为LH或AZ的航班
//    4 CA(*)   表示CA代码共享航班/CA开头的实际承运人为其他航空公司的航班
//    5 CA(CA)   表示CA自营航班/CA实际承运航班；
//            6 CA(OZ)001-999 表示CA开头航班号为001-999之间且实际承运人为OZ的航班；
//            7 为空表示无限制，多程用/分割"
    //ForbiddenFlight=""
    @XmlAttribute(name = "ForbiddenFlight")
    private String forbiddenFlight;


    //IsAllowStopoverOutbound="0"
    //是否允许去程中途停留	IsAllowStopoverOutbound	bit	单选（0：否  1：是） 请录入0或1
    @XmlAttribute(name = "IsAllowStopoverOutbound")
    private int isAllowStopoverOutbound;

    // OutboundDayTime="123"
    //去程班期	OutboundDayTime	varchar(20)	1234567 作用在航段上， 12:00-14:00表示每天的12点到14点 ；12:00FRI-12:00SAT 表示周五的中午12点至周六的中午12点
    @XmlAttribute(name = "OutboundDayTime")
    private String outboundDayTime;

    // OutboundDayTimeIndicator="0"
    //去程班期作用点	OutboundDayTimeIndicator	tinyint	单选（0：第一国际段、1：始发航段、2：主航段、3：可为空） 输入0,1,2,3中一个
    @XmlAttribute(name = "OutboundDayTimeIndicator")
    private int outboundDayTimeIndicator;

    // FCOutboundTravelDate="2020-07-10>2020-10-31/2020-11-02>2020-12-01"
    //去程旅行日期	FCOutboundTravelDate	varchar(200)	2014-05-01>2014-06-01 要做日期check
    @XmlAttribute(name = "FcOutboundTravelDate")
    private String fcOutboundTravelDate;

    // FCOutboundTravelDateIndicator="1"
    //去程旅行日期作用点	FCOutboundTravelDateIndicator	tinyint	单选（0：第一国际段、1：始发航段、2：主航段、3：可为空）  输入0,1,2,3中一个
    @XmlAttribute(name = "FcOutboundTravelDateIndicator")
    private int fcOutboundTravelDateIndicator;


    // OutboundTravelDateExcept="2020-07-10>2020-12-31"
    //去程除外旅行日期	OutboundTravelDateExcept	varchar(200)	可为空，2014-07-10>2014-10-31/2014-11-02>2014-12-31 不为空时要做日期check
    @XmlAttribute(name = "OutboundTravelDateExcept")
    private String outboundTravelDateExcept;

    // SalesDate="2020-07-10>2020-12-31"
//    销售日期	SalesDate	varchar(30)	2014-05-01>2014-06-01 要做日期check
    @XmlAttribute(name = "SalesDate")
    private String salesDate;

    // Eligibility="2"
    //旅客资质	Eligibility	tinyint	单选（0：普通成人、1：留学生、2：劳工 3：移民、4：海员） 请录入数字
    @XmlAttribute(name = "Eligibility")
    private int eligibility;

    // MinPax="1"
    //    最小出行人数	MinPax	tinyint	数字
    @XmlAttribute(name = "MinPax")
    private int minPax;

    // MaxPax="9"
    //    最大出行人数	MaxPax	tinyint	数字
    @XmlAttribute(name = "MaxPax")
    private int maxPax;

    // FareType="Amadeus"
    //运价类型	FareType	tinyint	单选（B2B、B2C、BSP、AMADEUS、ABACUS、GALILEO、SABRE、WORLDSPAN），请录入字母
    @XmlAttribute(name = "FareType")
    private String fareType;

    // TicketType="1"
    //票种	TicketType	tinyint	单选（1：BSP电子票、2：航空公司本票电子客票），请录入1或2
    @XmlAttribute(name = "TicketType")
    private int ticketType;

    // SalesPrice="5000"
    //销售票面价	SalesPrice	int	必须为10的整倍数
    @XmlAttribute(name = "SalesPrice")
    private int salesPrice;

    // Currency="CNY"
    //币种	Currency	varchar(3)	币种三字码，比如：CNY
    @XmlAttribute(name = "Currency")
    private String currency;

    // AdultTax=""
    //成人税费	AdultTax	int	不能含有小数点，默认币种为CNY
    @XmlAttribute(name = "AdultTax")
    private int adultTax;

    // ChdDiscoundRate=""
    //儿童价	ChdDiscoundRate	varchar(10)	百分比或整数金额，只允许录入一种
    @XmlAttribute(name = "ChdDiscoundRate")
    private String chdDiscoundRate;

    // ChdTax=""
    //儿童税费	ChdTax	int	不能含有小数点，默认币种为CNY
    @XmlAttribute(name = "ChdTax")
    private int chdTax;

    // InfantRate=""
    //无座婴儿价	InfantRate	varchar(10)	百分比或整数金额，只允许录入一种
    @XmlAttribute(name = "InfantRate")
    private String infantRate;

    // InfantTax=""
    //    无座婴儿税费	InfantTax	int	不能含有小数点，默认币种为CNY
    @XmlAttribute(name = "InfantTax")
    private int infantTax;

    // Commition="12.34"
    //返点	Commition	decimal(18,2)	整数或两位小数
    @XmlAttribute(name = "Commition")
    private float commission;

    // Profit="-21"
    //留钱	Profit	smallint	只支持正负整数输入；-20表示返20元，20代表留20元
    @XmlAttribute(name = "Profit")
    private int profit;

    // TicketingDeadline="20-365,7,3/0-19,0,0"
    //出票时限	TicketingDeadline	varchar(800)	"举例:20-365,7,3/0-19,0,0
    //表示起飞前20天以前的预订，至少于预订后7天内出票或起飞前3天前出票/起飞前20天内的预订，预定后立即出票（航班起飞日期,预订后多久出票,航班起飞前多久出票）"
    @XmlAttribute(name = "TicketingDeadline")
    private String ticketingDeadline;

    // IsNeedPnr="0"
    //是否创建PNR	IsNeedPnr	bit	单选（0：否 1：是），请录入0或1
    @XmlAttribute(name = "IsNeedPnr")
    private int isNeedPnr;

    // InvoiceType="1"
    //报销凭证	InvoiceType	tinyint	单选（0：旅行发票  1：行程单） 请录入0或1
    @XmlAttribute(name = "InvoiceType")
    private int invoiceType;

    // Nationality="CN/US"
    //适用乘客国籍	Nationality	varchar(2)	国家二字代码，可录入多个用/隔开表示或的关系，为空表示不限制   要做是否存在check
    @XmlAttribute(name = "Nationality")
    private String nationality;

    // ExcludeNationality=""
    //除外乘客国籍	ExcludeNationality	varchar(2)	国家二字代码，可录入多个用/隔开表示或的关系,为空表示不限制     要做是否存在check
    @XmlAttribute(name = "ExcludeNationality")
    private String excludeNationality;

    // Age=""
    //乘客年龄	Age	tinyint	数字，可录入范围 如21-25表示21周岁至25周岁
    @XmlAttribute(name = "Age")
    private String age;

    // IsOutboundChangeable="1"
    //去程可否更改	IsOutboundChangeable	bit	单选（0：否 1：是），请录入0或1
    @XmlAttribute(name = "IsOutboundChangeable")
    private int isOutboundChangeable;

    // OutboundRebooingFee="2999"
    //去程改期费用	OutboundRebooingFee	varchar(10)	固定金额或百分比只可录入一种；当要录入百分比时币种必须为空默认是CNY
    @XmlAttribute(name = "OutboundRebooingFee")
    private String outboundRebookingFee;

    // OutboundRebookingCurrency="HKD"
    //去程改期币种	OutboundRebookingCurrency	varchar(3)	币种三字码，比如：CNY
    @XmlAttribute(name = "OutboundRebookingCurrency")
    private String outboundRebookingCurrency;

    // IsRefundable="0"
    //全部未使用可否退票	IsRefundable	bit	单选（0：否 1：是），请录入0或1
    @XmlAttribute(name = "IsRefundable")
    private int isRefundable;

    // CancellationFee=""
    //全部未使用退票费用	CancellationFee	varchar(10)	固定金额或百分比只可录入一种；当要录入百分比时币种必须为空默认是CNY
    @XmlAttribute(name = "CancellationFee")
    private String cancellationFee;

    // CancellationCurrency=""
    //全部未使用退票币种	CancellationCurrency	varchar(3)	币种三字码，比如：CNY
    @XmlAttribute(name = "CancellationCurrency")
    private String cancellationCurrency;

    // NOSHOW=""
//    NOSHOW	NOSHOW	varchar(800)	文本格式
    @XmlAttribute(name = "NoShow")
    private String noshow;

    // IsNoshowRevalidation="1"
    //是否允许NOSHOW改期	IsNoshowRevalidation	bit	单选（0：否 1：是），请录入0或1
    @XmlAttribute(name = "IsNoshowRevalidation")
    private int isNoshowRevalidation;

    // RevNoshowCondition="24H"
    //改期时航班起飞前多久算NOSHOW	RevNoshowCondition	varchar(20)	24H，表示24小时
    @XmlAttribute(name = "RevNoshowCondition")
    private String revNoshowCondition;

    // RevNoshowOutFee="1500"
    //去程NOSHOW改期费用	RevNoshowOutFee	varchar(3)	固定金额或百分比只可录入一种；当要录入百分比时币种必须为空默认是CNY
    @XmlAttribute(name = "RevNoshowOutFee")
    private String revNoshowOutFee;

    // RevNoshowOutCurrency="CNY"
    //去程NOSHOW改期币种	RevNoshowOutCurrency	varchar(10)	币种三字码，比如：CNY
    @XmlAttribute(name = "RevNoshowOutCurrency")
    private String revNoshowOutCurrency="";

    // IsNoshowRefund="1"
    //是否允许NOSHOW退票	IsNoshowRefund	bit	单选（0：否 1：是），请录入0或1
    @XmlAttribute(name = "IsNoshowRefund")
    private int isNoshowRefund;

    // RefNoshowCondition="24H"
    //退票时航班起飞前多久算NOSHOW	RefNoshowCondition	varchar(20)	24H，表示24小时
    @XmlAttribute(name = "RefNoshowCondition")
    private String refNoshowCondition;

    // RefNoshowFee="1500"
    //NOSHOW全部未使用退票费用	RefNoshowFee	varchar(3)	固定金额或百分比只可录入一种；当要录入百分比时币种必须为空默认是CNY
    @XmlAttribute(name = "RefNoshowFee")
    private String refNoshowFee;

    // RefNoshowCurrency="CNY"
    //NOSHOW全部未使用退票币种	RefNoshowCurrency	varchar(10)	币种三字码，比如：CNY
    @XmlAttribute(name = "RefNoshowCurrency")
    private String refNoshowCurrency;

    // YourOfficeNO=""
    //授权OFFICEN号	YourOfficeNO	varchar(20)	只允许录入一个OFFICE号
    @XmlAttribute(name = "YourOfficeNo")
    private String yourOfficeNO;

    // TicketingRemark="出票备注"
    //出票备注	TicketingRemark	varchar(1000)	QTE需使用特使指令QTE：/XXXX
    @XmlAttribute(name = "TicketIngRemark")
    private String ticketingRemark;

    // WorkingTime="09:00-18:00/09:00MON-18:00FRI/12:00-20:00"
    //工作时间	WorkingTime	varchar(80)	09:00-18:00表示每一天的早上9点到下午6点  09:00MON-18:00FRI表示周一到周五的每天早上9点到下午6点，可以为空，表示不限制
    @XmlAttribute(name = "WorkingTime")
    private String workingTime;

    // OutboundBaggage="20公斤"
    //去程行李额	OutboundBaggage	varchar(4000)	只允许录入两种格式：1.XX公斤           2.X件，每件XX公斤
    @XmlAttribute(name = "OutboundBaggage")
    private String outboundBaggage;

    // AgentID=""/>
    //供应商编号	AgentID	varchar(50)	票台ID，供应商请输入0即可
    @XmlAttribute(name = "AgentID")
    private String agentID;

    //********** same as IntlOwFareInfo end********************

    @XmlAttribute(name = "IsOther")
    private Integer isOther;

    @XmlAttribute(name = "IsAllowCombination")
    private Integer isAllowCombination;

    @XmlAttribute(name = "CombinablePolicyId")
    private String combinablePolicyId;

    @XmlAttribute(name = "IsAllowStopoverInbound")
    private Integer isAllowStopoverInbound;

    @XmlAttribute(name = "InboundDayTime")
    private String inboundDayTime;

    @XmlAttribute(name = "InboundDayTimeIndicator")
    private Integer inboundDayTimeIndicator;

    @XmlAttribute(name = "FcInboundTravelDate")
    private String fcInboundTravelDate;

    @XmlAttribute(name = "InboundTravelDateExcept")
    private String inboundTravelDateExcept;

    @XmlAttribute(name = "FcInboundTravelDateIndicator")
    private Integer fcInboundTravelDateIndicator;

    @XmlAttribute(name = "PuOutboundTravelDate")
    private String puOutboundTravelDate;

    @XmlAttribute(name = "PuOutboundTravelDateIndicator")
    private Integer puOutboundTravelDateIndicator;

    @XmlAttribute(name = "MinStay")
    private String minStay;

    @XmlAttribute(name = "MaxStay")
    private String maxStay;

    @XmlAttribute(name = "CommissionCalculation")
    private Integer commissionCalculation;

    @XmlAttribute(name = "IsInboundChangeable")
    private Integer isInboundChangeable;

    @XmlAttribute(name = "InboundRebooingFee")
    private String inboundRebookingFee;

    @XmlAttribute(name = "InboundRebookingCurrency")
    private String inboundRebookingCurrency;

    @XmlAttribute(name = "IsPartlyUsedRefundable")
    private Integer isPartlyUsedRefundable;

    @XmlAttribute(name = "PartlyUsedRefundFee")
    private String partlyUsedRefundFee;

    @XmlAttribute(name = "PartlyUsedRefundCurrency")
    private String partlyUsedRefundCurrency;

    @XmlAttribute(name = "RevNoshowInFee")
    private String revNoshowInFee;

    @XmlAttribute(name = "RevNoshowInCurrency")
    private String revNoshowInCurrency;

    @XmlAttribute(name = "RefNoshowPartlyFee")
    private String refNoshowPartlyFee;

    @XmlAttribute(name = "RefNoshowPartlyCurrency")
    private String refNoshowPartlyCurrency;

    @XmlAttribute(name = "InboundBaggage")
    private String inboundBaggage;

    @XmlAttribute(name = "IsAllowOpenJaw")
    private Integer isAllowOpenJaw;

    @XmlAttribute(name = "OpenJawType")
    private Integer openJawType;

    //    可组缺口文件编号	CombinableOJPilicyNumber	varchar(100)	可为空，也可输入文件编号
    @XmlAttribute(name = "CombinableOJPilicyNumber")
    private String combinableOjPolicyNumber;



    public Integer getIsOther() {
        return isOther;
    }

    public void setIsOther(Integer isOther) {
        this.isOther = isOther;
    }

    public Integer getIsAllowCombination() {
        return isAllowCombination;
    }

    public void setIsAllowCombination(Integer isAllowCombination) {
        this.isAllowCombination = isAllowCombination;
    }

    public String getCombinablePolicyId() {
        return combinablePolicyId;
    }

    public void setCombinablePolicyId(String combinablePolicyId) {
        this.combinablePolicyId = combinablePolicyId;
    }

    public Integer getIsAllowStopoverInbound() {
        return isAllowStopoverInbound;
    }

    public void setIsAllowStopoverInbound(Integer isAllowStopoverInbound) {
        this.isAllowStopoverInbound = isAllowStopoverInbound;
    }

    public String getInboundDayTime() {
        return inboundDayTime;
    }

    public void setInboundDayTime(String inboundDayTime) {
        this.inboundDayTime = inboundDayTime;
    }

    public Integer getInboundDayTimeIndicator() {
        return inboundDayTimeIndicator;
    }

    public void setInboundDayTimeIndicator(Integer inboundDayTimeIndicator) {
        this.inboundDayTimeIndicator = inboundDayTimeIndicator;
    }

    public String getFcInboundTravelDate() {
        return fcInboundTravelDate;
    }

    public void setFcInboundTravelDate(String fcInboundTravelDate) {
        this.fcInboundTravelDate = fcInboundTravelDate;
    }

    public String getInboundTravelDateExcept() {
        return inboundTravelDateExcept;
    }

    public void setInboundTravelDateExcept(String inboundTravelDateExcept) {
        this.inboundTravelDateExcept = inboundTravelDateExcept;
    }

    public Integer getFcInboundTravelDateIndicator() {
        return fcInboundTravelDateIndicator;
    }

    public void setFcInboundTravelDateIndicator(Integer fcInboundTravelDateIndicator) {
        this.fcInboundTravelDateIndicator = fcInboundTravelDateIndicator;
    }

    public String getPuOutboundTravelDate() {
        return puOutboundTravelDate;
    }

    public void setPuOutboundTravelDate(String puOutboundTravelDate) {
        this.puOutboundTravelDate = puOutboundTravelDate;
    }

    public Integer getPuOutboundTravelDateIndicator() {
        return puOutboundTravelDateIndicator;
    }

    public void setPuOutboundTravelDateIndicator(Integer puOutboundTravelDateIndicator) {
        this.puOutboundTravelDateIndicator = puOutboundTravelDateIndicator;
    }

    public String getMinStay() {
        return minStay;
    }

    public void setMinStay(String minStay) {
        this.minStay = minStay;
    }

    public String getMaxStay() {
        return maxStay;
    }

    public void setMaxStay(String maxStay) {
        this.maxStay = maxStay;
    }

    public Integer getCommissionCalculation() {
        return commissionCalculation;
    }

    public void setCommissionCalculation(Integer commissionCalculation) {
        this.commissionCalculation = commissionCalculation;
    }

    public Integer getIsInboundChangeable() {
        return isInboundChangeable;
    }

    public void setIsInboundChangeable(Integer isInboundChangeable) {
        this.isInboundChangeable = isInboundChangeable;
    }

    public String getInboundRebookingFee() {
        return inboundRebookingFee;
    }

    public void setInboundRebookingFee(String inboundRebookingFee) {
        this.inboundRebookingFee = inboundRebookingFee;
    }

    public String getInboundRebookingCurrency() {
        return inboundRebookingCurrency;
    }

    public void setInboundRebookingCurrency(String inboundRebookingCurrency) {
        this.inboundRebookingCurrency = inboundRebookingCurrency;
    }

    public Integer getIsPartlyUsedRefundable() {
        return isPartlyUsedRefundable;
    }

    public void setIsPartlyUsedRefundable(Integer isPartlyUsedRefundable) {
        this.isPartlyUsedRefundable = isPartlyUsedRefundable;
    }

    public String getPartlyUsedRefundFee() {
        return partlyUsedRefundFee;
    }

    public void setPartlyUsedRefundFee(String partlyUsedRefundFee) {
        this.partlyUsedRefundFee = partlyUsedRefundFee;
    }

    public String getPartlyUsedRefundCurrency() {
        return partlyUsedRefundCurrency;
    }

    public void setPartlyUsedRefundCurrency(String partlyUsedRefundCurrency) {
        this.partlyUsedRefundCurrency = partlyUsedRefundCurrency;
    }

    public String getRevNoshowInFee() {
        return revNoshowInFee;
    }

    public void setRevNoshowInFee(String revNoshowInFee) {
        this.revNoshowInFee = revNoshowInFee;
    }

    public String getRevNoshowInCurrency() {
        return revNoshowInCurrency;
    }

    public void setRevNoshowInCurrency(String revNoshowInCurrency) {
        this.revNoshowInCurrency = revNoshowInCurrency;
    }

    public String getRefNoshowPartlyFee() {
        return refNoshowPartlyFee;
    }

    public void setRefNoshowPartlyFee(String refNoshowPartlyFee) {
        this.refNoshowPartlyFee = refNoshowPartlyFee;
    }

    public String getRefNoshowPartlyCurrency() {
        return refNoshowPartlyCurrency;
    }

    public void setRefNoshowPartlyCurrency(String refNoshowPartlyCurrency) {
        this.refNoshowPartlyCurrency = refNoshowPartlyCurrency;
    }

    public String getInboundBaggage() {
        return inboundBaggage;
    }

    public void setInboundBaggage(String inboundBaggage) {
        this.inboundBaggage = inboundBaggage;
    }

    public Integer getIsAllowOpenJaw() {
        return isAllowOpenJaw;
    }

    public void setIsAllowOpenJaw(Integer isAllowOpenJaw) {
        this.isAllowOpenJaw = isAllowOpenJaw;
    }

    public Integer getOpenJawType() {
        return openJawType;
    }

    public void setOpenJawType(Integer openJawType) {
        this.openJawType = openJawType;
    }

    public String getCombinableOjPolicyNumber() {
        return combinableOjPolicyNumber;
    }

    public void setCombinableOjPolicyNumber(String combinableOjPolicyNumber) {
        this.combinableOjPolicyNumber = combinableOjPolicyNumber;
    }

    public String getFareId() {
        return fareId;
    }

    public void setFareId(String fareId) {
        this.fareId = fareId;
    }

    /**
     *文件编号	PolicyId	varchar(30)	自由录入格式，如SHA5700FF500
     */
    public String getPolicyId() {
        return policyId;
    }

    public void setPolicyId(String policyId) {
        this.policyId = policyId;
    }

    public int getProductType() {
        return productType;
    }

    public void setProductType(int productType) {
        this.productType = productType;
    }

    public int getIsApplication() {
        return isApplication;
    }

    public void setIsApplication(int isApplication) {
        this.isApplication = isApplication;
    }

    public int getStockType() {
        return stockType;
    }

    public void setStockType(int stockType) {
        this.stockType = stockType;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public int getIsAirport() {
        return isAirport;
    }

    public void setIsAirport(int isAirport) {
        this.isAirport = isAirport;
    }

    public String getDepartCity() {
        return departCity;
    }

    public void setDepartCity(String departCity) {
        this.departCity = departCity;
    }

    public String getArriveCity() {
        return arriveCity;
    }

    public void setArriveCity(String arriveCity) {
        this.arriveCity = arriveCity;
    }

    public String getRouting() {
        return routing;
    }

    public void setRouting(String routing) {
        this.routing = routing;
    }

    public String getRoutingClass() {
        return routingClass;
    }

    public void setRoutingClass(String routingClass) {
        this.routingClass = routingClass;
    }

    public String getFareBasis() {
        return fareBasis;
    }

    public void setFareBasis(String fareBasis) {
        this.fareBasis = fareBasis;
    }

    public String getFlight() {
        return flight;
    }

    public void setFlight(String flight) {
        this.flight = flight;
    }

    public String getForbiddenFlight() {
        return forbiddenFlight;
    }

    public void setForbiddenFlight(String forbiddenFlight) {
        this.forbiddenFlight = forbiddenFlight;
    }

    public int getIsAllowStopoverOutbound() {
        return isAllowStopoverOutbound;
    }

    public void setIsAllowStopoverOutbound(int isAllowStopoverOutbound) {
        this.isAllowStopoverOutbound = isAllowStopoverOutbound;
    }

    public String getOutboundDayTime() {
        return outboundDayTime;
    }

    public void setOutboundDayTime(String outboundDayTime) {
        this.outboundDayTime = outboundDayTime;
    }

    public int getOutboundDayTimeIndicator() {
        return outboundDayTimeIndicator;
    }

    public void setOutboundDayTimeIndicator(int outboundDayTimeIndicator) {
        this.outboundDayTimeIndicator = outboundDayTimeIndicator;
    }

    public String getFcOutboundTravelDate() {
        return fcOutboundTravelDate;
    }

    public void setFcOutboundTravelDate(String fcOutboundTravelDate) {
        this.fcOutboundTravelDate = fcOutboundTravelDate;
    }

    public int getFcOutboundTravelDateIndicator() {
        return fcOutboundTravelDateIndicator;
    }

    public void setFcOutboundTravelDateIndicator(int fcOutboundTravelDateIndicator) {
        this.fcOutboundTravelDateIndicator = fcOutboundTravelDateIndicator;
    }

    public String getOutboundTravelDateExcept() {
        return outboundTravelDateExcept;
    }

    public void setOutboundTravelDateExcept(String outboundTravelDateExcept) {
        this.outboundTravelDateExcept = outboundTravelDateExcept;
    }

    public String getSalesDate() {
        return salesDate;
    }

    public void setSalesDate(String salesDate) {
        this.salesDate = salesDate;
    }

    public int getEligibility() {
        return eligibility;
    }

    public void setEligibility(int eligibility) {
        this.eligibility = eligibility;
    }

    public int getMinPax() {
        return minPax;
    }

    public void setMinPax(int minPax) {
        this.minPax = minPax;
    }

    public int getMaxPax() {
        return maxPax;
    }

    public void setMaxPax(int maxPax) {
        this.maxPax = maxPax;
    }

    public String getFareType() {
        return fareType;
    }

    public void setFareType(String fareType) {
        this.fareType = fareType;
    }

    public int getTicketType() {
        return ticketType;
    }

    public void setTicketType(int ticketType) {
        this.ticketType = ticketType;
    }

    public int getSalesPrice() {
        return salesPrice;
    }

    public void setSalesPrice(int salesPrice) {
        this.salesPrice = salesPrice;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public int getAdultTax() {
        return adultTax;
    }

    public void setAdultTax(int adultTax) {
        this.adultTax = adultTax;
    }

    public String getChdDiscoundRate() {
        return chdDiscoundRate;
    }

    public void setChdDiscoundRate(String chdDiscoundRate) {
        this.chdDiscoundRate = chdDiscoundRate;
    }

    public int getChdTax() {
        return chdTax;
    }

    public void setChdTax(int chdTax) {
        this.chdTax = chdTax;
    }

    public String getInfantRate() {
        return infantRate;
    }

    public void setInfantRate(String infantRate) {
        this.infantRate = infantRate;
    }

    public int getInfantTax() {
        return infantTax;
    }

    public void setInfantTax(int infantTax) {
        this.infantTax = infantTax;
    }

    public int getProfit() {
        return profit;
    }

    public void setProfit(int profit) {
        this.profit = profit;
    }

    public String getTicketingDeadline() {
        return ticketingDeadline;
    }

    public void setTicketingDeadline(String ticketingDeadline) {
        this.ticketingDeadline = ticketingDeadline;
    }

    public int getIsNeedPnr() {
        return isNeedPnr;
    }

    public void setIsNeedPnr(int isNeedPnr) {
        this.isNeedPnr = isNeedPnr;
    }

    public int getInvoiceType() {
        return invoiceType;
    }

    public void setInvoiceType(int invoiceType) {
        this.invoiceType = invoiceType;
    }

    public String getNationality() {
        return nationality;
    }

    public void setNationality(String nationality) {
        this.nationality = nationality;
    }

    public String getExcludeNationality() {
        return excludeNationality;
    }

    public void setExcludeNationality(String excludeNationality) {
        this.excludeNationality = excludeNationality;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public int getIsOutboundChangeable() {
        return isOutboundChangeable;
    }

    public void setIsOutboundChangeable(int isOutboundChangeable) {
        this.isOutboundChangeable = isOutboundChangeable;
    }

    public String getOutboundRebookingFee() {
        return outboundRebookingFee;
    }

    public void setOutboundRebookingFee(String outboundRebookingFee) {
        this.outboundRebookingFee = outboundRebookingFee;
    }

    public String getOutboundRebookingCurrency() {
        return outboundRebookingCurrency;
    }

    public void setOutboundRebookingCurrency(String outboundRebookingCurrency) {
        this.outboundRebookingCurrency = outboundRebookingCurrency;
    }

    public int getIsRefundable() {
        return isRefundable;
    }

    public void setIsRefundable(int isRefundable) {
        this.isRefundable = isRefundable;
    }

    public String getCancellationFee() {
        return cancellationFee;
    }

    public void setCancellationFee(String cancellationFee) {
        this.cancellationFee = cancellationFee;
    }

    public String getCancellationCurrency() {
        return cancellationCurrency;
    }

    public void setCancellationCurrency(String cancellationCurrency) {
        this.cancellationCurrency = cancellationCurrency;
    }

    public String getNoshow() {
        return noshow;
    }

    public void setNoshow(String noshow) {
        this.noshow = noshow;
    }

    public int getIsNoshowRevalidation() {
        return isNoshowRevalidation;
    }

    public void setIsNoshowRevalidation(int isNoshowRevalidation) {
        this.isNoshowRevalidation = isNoshowRevalidation;
    }

    public String getRevNoshowCondition() {
        return revNoshowCondition;
    }

    public void setRevNoshowCondition(String revNoshowCondition) {
        this.revNoshowCondition = revNoshowCondition;
    }

    public String getRevNoshowOutFee() {
        return revNoshowOutFee;
    }

    public void setRevNoshowOutFee(String revNoshowOutFee) {
        this.revNoshowOutFee = revNoshowOutFee;
    }

    public String getRevNoshowOutCurrency() {
        return revNoshowOutCurrency;
    }

    public void setRevNoshowOutCurrency(String revNoshowOutCurrency) {
        this.revNoshowOutCurrency = revNoshowOutCurrency;
    }

    public int getIsNoshowRefund() {
        return isNoshowRefund;
    }

    public void setIsNoshowRefund(int isNoshowRefund) {
        this.isNoshowRefund = isNoshowRefund;
    }

    public String getRefNoshowCondition() {
        return refNoshowCondition;
    }

    public void setRefNoshowCondition(String refNoshowCondition) {
        this.refNoshowCondition = refNoshowCondition;
    }

    public String getRefNoshowFee() {
        return refNoshowFee;
    }

    public void setRefNoshowFee(String refNoshowFee) {
        this.refNoshowFee = refNoshowFee;
    }

    public String getRefNoshowCurrency() {
        return refNoshowCurrency;
    }

    public void setRefNoshowCurrency(String refNoshowCurrency) {
        this.refNoshowCurrency = refNoshowCurrency;
    }

    public String getYourOfficeNO() {
        return yourOfficeNO;
    }

    public void setYourOfficeNO(String yourOfficeNO) {
        this.yourOfficeNO = yourOfficeNO;
    }

    public String getTicketingRemark() {
        return ticketingRemark;
    }

    public void setTicketingRemark(String ticketingRemark) {
        this.ticketingRemark = ticketingRemark;
    }

    public String getWorkingTime() {
        return workingTime;
    }

    public void setWorkingTime(String workingTime) {
        this.workingTime = workingTime;
    }

    public String getOutboundBaggage() {
        return outboundBaggage;
    }

    public void setOutboundBaggage(String outboundBaggage) {
        this.outboundBaggage = outboundBaggage;
    }

    public String getAgentID() {
        return agentID;
    }

    public void setAgentID(String agentID) {
        this.agentID = agentID;
    }

    public float getCommission() {
        return commission;
    }

    public void setCommission(float commission) {
        this.commission = commission;
    }
}
